package cn.topcodes.tcsf.app.domain.entity;

import cn.topcodes.tcsf.admin.commons.domain.IdEntity;
import lombok.Data;
import javax.persistence.Table;
import java.util.Date;

/**
 * APP客户端
 * @author unicorn
 */
@Data
@Table(name="t_app_client")
public class AppClient extends IdEntity {
	
	public static final String FIELD_APP_USER_ID = "appUserId";

	public static final String FIELD_TOKEN = "token";

	public static final String FIELD_PLATFORM = "platform";

	public static final String FIELD_TERMINAL = "terminal";

	public static final String FIELD_APP_VERSION = "appVersion";

	public static final String FIELD_APP = "app";

	public static final String FIELD_LAST_ACTIVE_TIME = "lastActiveTime";

	public static final String FIELD_LANGUAGE = "language";

	/**
	 * 平台 - IOS应用
	 */
	public static final String PLATFORM_IOS = "IOS";

	/**
	 * 平台 - Android应用
	 */
	public static final String PLATFORM_ANDROID = "Android";

	/**
	 * 平台 - windows应用
	 */
	public static final String PLATFORM_WINDOWS = "Windows";

	/**
	 * 平台 - PC网页应用
	 */
	public static final String PLATFORM_PC_WEB = "PcWeb";

	/**
	 * 平台 - 移动网页应用
	 */
	public static final String PLATFORM_MOBILE_WEB = "MobileWeb";

	/**
	 * 平台 - 微信公众号
	 */
	public static final String PLATFORM_WECHAT_MP = "WechatMp";

	/**
	 * 平台 - 微信小程序
	 */
	public static final String PLATFORM_WECHAT_MINI_PROGRAM = "WechatMiniProgram";

	/**
	 * 平台 - 未知
	 */
	public static final String PLATFORM_UNKNOWN = "Unknown";

	/**
	 * 默认APP应用
	 */
	public static final String APP_DEFAULT = "Default";

	/**
	 * 终端信息 - 未知
	 */
	public static final String TERMINAL_UNKNOWN = "Unknown";

	/**
	 * app版本信息 - 未知
	 */
	public static final String APP_VERSION_UNKNOWN = "Unknown";

	/**
	 * APP用户
	 */
	private Long appUserId;

	/**
	 * 凭证
	 */
	private String token;

	/**
	 * 平台
	 * 包括IOS、Android、Wechat、Windows等等
	 */
	private String platform;

	/**
	 * 终端信息
	 * 例如：Xiaomi,Huawei X6等
	 */
	private String terminal;

	/**
	 * APP版本
	 */
	private String appVersion;

	/**
	 * 应用名称
	 * 一个应用平台可以有多个APP应用
	 * 用户可以登录任意一个应用，使用的是同一份用户信息
	 */
	private String app;

	/**
	 * 最后活跃时间
	 */
	private Date lastActiveTime;

	/**
	 * 语言
	 */
	private String language;

}